import time

# 设置目标内存利用率（以百分比表示）
target_utilization = 95
# 计算要分配的内存大小（以MB为单位）
total_memory = int(open('/proc/meminfo').readlines()[0].split()[1]) // 1024
target_memory = total_memory * target_utilization // 100

# 计算要保持运行的时间（以秒为单位）
duration = 3 * 60 * 60  # 3小时

print("开始内存利用率测试...")
print(f"目标内存利用率: {target_utilization}%")
print(f"目标内存大小: {target_memory}MB")
print(f"测试持续时间: {duration}秒")
arr = []
# 分配内存循环
while True:
    # 检查已分配内存大小
    current_memory = int(open('/proc/meminfo').readlines()[1].split()[1]) // 1024
    # 如果已分配内存大小达到目标大小，则退出循环
    print(f"当前内存占用为:{current_memory}MB")
    if current_memory >= target_memory:
        break
    # 分配一块10MB的内存
    alloc_memory = bytearray(1024 * 1024 * 1024)
    arr.append(alloc_memory)
    time.sleep(.3)  # 每次分配后休眠1秒

print("内存利用率已达到目标值。")

# 保持运行指定的时间
time.sleep(duration)

print("测试结束。")
